报文的类型是有很多种的,常用的有定长报文、键值报文、XML报文、JSON报文、二进制报文等,以下就对这几种报文做相应的介绍,并配简单的示例。 API管理>API注册 >接口发布中,各种类型的服务都可以配置报文转换规则,可以自定义发送业务服务的请求头、请求报文和业务服务返回客户端的响应头、响应报文。
# 报文转换场景
请求报文:
{"id":"33","name":"名称1","isbn":"isbn1","author":"作者1","price":45.32}
响应报文:
{
"id": "1",
"name": "哈哈哈名字",
"address": "地址1",
"books": {
"1": {
"id": "1",
"name": "名称1",
"isbn": "isbn1",
"author": "作者1",
"price": 45.32
},
"2": {
"id": "2",
"name": "名称2",
"isbn": "isbn2",
"author": "作者2",
"price": 33.3
}
}
}
# 场景1:将请求报文“id”换成“newId”
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | $.id | $.newId | 否 |
响应报文转换结果如下:
# 场景2:报文books.1新增 ”newKey”:”newValue”
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | $.books.1.newKey | newValue | 否 |
响应报文转换结果如下:
# 场景3:删除报文中books.1.author的键值对
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
$.books.1.newKey | newValue | 否 |
响应报文转换结果如下:
# 场景4:将books.1.author的value修改成张三
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | $.books.1.author | 张三 | 否 |
响应报文转换结果如下:
# 场景5:将books.1.author的value修改成请求头Author的值Nike
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | $.books.1.author | 张三 | 否 |
转换结果,响应报文:
响应头:
# 场景6:将books.1.author的value修改成books.2.author的value
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | $.books.1.author | $.books.2.author | 是 |
响应报文转换结果如下:
# 场景7:替换books.1.author的键值对,修改后新的Key是‘$.books.1.newAuthor’Value是books.2.author的value
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | $.books.1.author | $.books.1.newAuthor | $.books.2.author | 是 |
响应报文转换结果如下:
# 场景8:修改请求头C-Key的值为“cvalue”
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文头 | C-Key | $.books.1.newAuthor | cvalue | 否 |
转换结果,客户端请求头:
服务端后台打印请求头:
# 场景9:修改请求头C-Key的值改为请求报文中id字段的value值
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文头 | C-Key | $.id | 是 |
转换结果,客户端请求头:
服务端后台打印请求头:
# 场景10:删除请求头C-Key
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文头 | C-Key |
转换结果,客户端请求头:
服务端后台打印请求头:
# 场景11:添加请求头”X-Key”:”xvalue”
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文头 | X-Key | xvalue | 否 |
转换结果,客户端请求头:
服务端后台打印请求头:
# 场景12:替换请求头C-Key,替换为”X-Key”:”xvalue”
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文头 | C-Key | X-Key | xvalue | 否 |
转换结果,客户端请求头:
服务端后台打印请求头:
# 场景13:当新增的请求头已存在时,在原先的基础上新增一个value
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文头 | C-Key | 3333333 | 否 |
转换结果,客户端请求头
服务端后台打印请求头:
# 场景14:请求报文xml转json 响应报文json转xml
请求报文转换 | XML转JSON |
---|---|
响应报文转换 | JSON转XML |
转换结果,客户端请求报文如下:
<root><id>33</id><name>名称1</name><isbn>isbn1</isbn><author>作者1</author><price>45.32</price></root>
响应报文转换结果如下:
<data contentType="text/xml;charset=UTF-8" contentLength="289"><![CDATA[<root><address>地址1</address><books><1><author>作者1</author><price>45.32</price><isbn>isbn1</isbn><name>名称1</name><id>1</id></1><2><author>作者2</author><price>33.3</price><isbn>isbn2</isbn><name>名称2</name><id>2</id></2></books><name>哈哈哈名字</name><id>1</id></root>]]></data>
# 场景15:XML格式响应报文转换
HTTP测试服务的响应报文如下
报文转换配置实现【/library/books/entry[1]/value/@name】的值赋给【/library/name】
响应报文转换配置如下:
字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|
报文体 | /library/name | /library/books/entry[1]/value/@name | 是 |
转换后的响应报文如下: